#include "windowsutils.h"

namespace NEngine {

// ================================================================================================
// Small wrapper for windows to get a environment variable
// ================================================================================================
std::wstring GetEnvironmentVariable(char* environvar) {
    char* src = environvar;
    size_t len;

    _dupenv_s(&src, &len, environvar);
    return std::wstring(src, src + strlen(src));
}

// ================================================================================================
// Find all the files in a directory and return it in a list
// ================================================================================================
CDynamicArray<std::wstring> GetFilesInPath(std::wstring& path, bool fullpath) {
    WIN32_FIND_DATA filedata;
    HANDLE hfind;
    CDynamicArray<std::wstring> files;
    hfind = FindFirstFile(path.c_str(), &filedata);
    do {
        if(filedata.dwFileAttributes) 
            files.Append((fullpath ? path.substr(0, path.find_last_of(L"\\/")) + L"\\" : L"") + 
                         filedata.cFileName);
    } while(FindNextFile(hfind, &filedata) != 0);

    return files;
}

} // -- namespace NEngine